﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Data.SqlClient;
using moviecentro;
using CruzSur.Models;
using System.Data;

namespace CruzSur.Controllers
{
    public static partial class AppDa
    {

        public static List<TransbordoModel> ListarTransbordo(string Agencia, DateTime FechaIni, DateTime FechaFin)
        {
            // ----- Lista C01
            List<TransbordoModel> ListData = new List<TransbordoModel>();
            System.Data.SqlClient.SqlParameter[] param;

            param = new System.Data.SqlClient.SqlParameter[3];

            param[0] = new SqlParameter("@Agencia_Origen", SqlDbType.Int);
            param[0].Value = Agencia;

            param[1] = new SqlParameter("@FechaIni", SqlDbType.DateTime);
            param[1].Value = FechaIni;

            param[2] = new SqlParameter("@FechaFin", SqlDbType.DateTime);
            param[2].Value = FechaFin;

            SqlDataReader reader = dbgestor.ListarSql2("exec TransbordoListar  @Agencia_Origen , @FechaIni, @FechaFin ", param);

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    TransbordoModel ListItem = new TransbordoModel();

                    ListItem.Fecha_Hora = reader.GetDateTime(reader.GetOrdinal("Fecha_Transbordo"));
                    ListItem.ID = reader.GetInt32(reader.GetOrdinal("ID_Transbordo"));
                    ListItem.Origen = reader["LUGARORIGEN"].ToString();
                    ListItem.Destino = reader["LUGARDESTINO"].ToString();

                    ListItem.Placa = reader["Nro_Placa"].ToString();
                    ListItem.OrigenID = reader.GetInt32(reader.GetOrdinal("AGENCIA_ORIGEN"));
                    ListItem.DestinoID = reader.GetInt32(reader.GetOrdinal("AGENCIA_DESTINO"));



                    ListData.Add(ListItem);
                }
            }
            reader.Close();

            return ListData;
        }

        public static TransbordoModel ListarTransbordoItem(string IDItem)
        {
            // ----- Lista C01
            List<TransbordoModel> ListData = new List<TransbordoModel>();

            System.Data.SqlClient.SqlParameter[] param = new System.Data.SqlClient.SqlParameter[1];
            param[0] = new SqlParameter("@ID_Movimiento", SqlDbType.Int);
            param[0].Value = IDItem;

            SqlDataReader reader = dbgestor.ListarSql2("exec TransbordoListar_ID @ID_Movimiento ", param);

            while (reader.Read())
            {
                TransbordoModel ListItem = new TransbordoModel();
                ListItem.Fecha_Hora = reader.GetDateTime(reader.GetOrdinal("Fecha_Transbordo"));
                ListItem.ID = reader.GetInt32(reader.GetOrdinal("ID_Transbordo"));
                ListItem.Origen = reader["LUGARORIGEN"].ToString();
                ListItem.Destino = reader["LUGARDESTINO"].ToString();
                ListItem.Placa = reader["Nro_Placa"].ToString();
                ListItem.OrigenID = reader.GetInt32(reader.GetOrdinal("AGENCIA_ORIGEN"));
                ListItem.DestinoID = reader.GetInt32(reader.GetOrdinal("AGENCIA_DESTINO"));


                ListData.Add(ListItem);
            }
            reader.Close();

            ListData[0].Dni = ListarTransbordoRegistroList(ListData[0].ID);

            return ListData[0];
        }

        public static void TransbordoActualizar(TransbordoModel item)
        {

            dbsql.ClearSQL();
            dbsql.AddTable("Transbordo");
            dbsql.AddField(SqlDbType.VarChar, "NRO_PLACA", item.Placa);
            dbsql.AddField(SqlDbType.DateTime, "Fecha_Transbordo", DateTime.Now);
            dbsql.AddField(SqlDbType.Int, "Agencia_Origen", item.OrigenID);
            dbsql.AddField(SqlDbType.Int, "Agencia_Destino", item.DestinoID);
            dbsql.AddWhere(SqlDbType.Int, "ID_Transbordo", item.ID);

            dbsql.UpdateNow();
        }

        public static int TransbordoInsertar(TransbordoModel item)
        {

            dbsql.ClearSQL();
            dbsql.AddTable("Transbordo");
            dbsql.AddField(SqlDbType.VarChar, "NRO_PLACA", item.Placa);
            dbsql.AddField(SqlDbType.DateTime, "Fecha_Transbordo", DateTime.Now);
            dbsql.AddField(SqlDbType.Int, "Agencia_Origen", item.OrigenID);
            dbsql.AddField(SqlDbType.Int, "Agencia_Destino", item.DestinoID);

            dbsql.InsertNow();

            SqlParameter[] param = new SqlParameter[0];
            return dbgestor.ListarSql2ScalarInt("select CAST(max(ID_transbordo) AS INT) t from Transbordo (nolock)", param);
        }

        // Transbordo DNI
        public static void TransbordoRegistroInsertar(int ID_Transbordo, string Dni)
        {

            dbsql.ClearSQL();
            dbsql.AddTable("Transbordo_Registro");
            dbsql.AddField(SqlDbType.VarChar, "DNI", Dni);
            dbsql.AddField(SqlDbType.Int, "ID_Transbordo", ID_Transbordo);

            dbsql.InsertNow();



        }

        public static List<string> ListarTransbordoRegistroList(int IDItem)
        {
            // ----- Lista C15 DNI
            List<string> ListData = new List<string>();

       
            SqlDataReader reader = dbgestor.ListarSql("select * from Transbordo_Registro (nolock) where ID_Transbordo = " + IDItem);

            while (reader.Read())
            {
                string ListItem = "";
                ListItem = reader.GetString(reader.GetOrdinal("DNI"));
                
                ListData.Add(ListItem);
            }
            reader.Close();

            return ListData;
        }
    }
}